// 字符串

#include <stdio.h>

int main(int argc, char const *argv[])
{
    // 字符数组
    char word[] = {'H', 'e', 'l', 'l', 'o', '!'};

    // 字符串
    // 以整数0结尾的一串字符
    //  0或'\0'是一样的
    // 0标志字符串的结束，但它不是字符串的一部分
    //  计算字符串长度时不包括这个0
    // 字符串以数组的形式存在，以数组或制作真的形式访问
    //  更多的是以指针的形式
    // string.h 中有很多处理字符串的函数
    char word2[] = {'H', 'e', 'l', 'l', 'o', '!', '\0'};

    // 字符串的几种表达方式
    // 指针
    char *str = "Hello";
    // 有一个字符数组，其内容是'Hello'
    char word3[] = "Hello";
    // 一个叫做 line 的字符数组，大小为10字节，
    //  将'Hello'放入（编译器会自动生成一个'\0'）
    char line[10] = "Hello";
    // "Hello" 是字符串的字面量或字符串的常量
    // "Hello" 会被编译器变成字符数组放在某处
    //  这个数组的长度是6，因为编译器会补个0
    // 两个相邻的字符串会被自动连接起来
    printf("test"
        "test\n");
    // 这样会把第二行开头的两个\t输出
    printf("test\
        test\n");
    
    return 0;
}